// createStore: 方法, 创建store实例对象

import { createStore } from 'vuex'
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'
import createPersistedstate from 'vuex-persistedstate' // 导入vuex数据持久化插件
// import * as Cookies from 'js-cookie'

export default createStore({
  // vuex中几个内部的选项没有发生变化
  strict: true, // 开启严格模式: 只容许通过提交mutation函数的方式进行数据修改 否则就报错
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    // 组合模块
    user, cart, category
  },
  plugins: [
    // 插件的同步机制: 只要修改了state中的数据, 就会自动同步
    createPersistedstate({
      key: 'rabbit-data', // 存放数据的key
      paths: ['user', 'cart'] // 想把哪个模块中的state中的数据进行持久化, 就把它的名字放进来
    //   storage: {
    //     getItem: key => Cookies.get(key),
    //     setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
    //     removeItem: key => Cookies.remove(key)
    //   }
    })
  ]
})
